﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data;
using System.Windows.Forms;
using System.IO;
using System.Drawing;
using Filmy.Model;

namespace Filmy.Kontroler.BazaDanych
{
    class tFilmy
    {
         public tFilmy()
        {
            dtFilmy = new dsFilmowy.FilmyDataTable();
            adapter = new Filmy.Model.dsFilmowyTableAdapters.FilmyTableAdapter();
        }

        dsFilmowy.FilmyDataTable dtFilmy;
        Filmy.Model.dsFilmowyTableAdapters.FilmyTableAdapter adapter;
        public static int idOstatniegoFilmu { get; set; }

        public bool addNewOrId(string czasTrwania, string wersja, string rokProdukcji, string link, string dataDodania, string ocena, string torrent, PictureBox pictureBox1, string opis)
        {
            dsFilmowy.FilmyRow filmyWiersz = dtFilmy.NewFilmyRow();
            filmyWiersz.Urzytkownicy_idUrzytkownika = Uzytkownicy.idUzytkownika;
            filmyWiersz.FilmyTytuly_idFilmu = FilmyTytuly.idOstatniego;
            if (czasTrwania.Length > 0)
                filmyWiersz.CzasTrwania = Convert.ToInt16(czasTrwania);
            filmyWiersz.Wersja = wersja;
            if (rokProdukcji.Length > 0)
                filmyWiersz.RokProdukcji = Convert.ToInt16(rokProdukcji);
            filmyWiersz.Link = link;
            filmyWiersz.DataDodania = DateTime.Parse(dataDodania);
            if (ocena.Length > 0)
                filmyWiersz.Ocena = Convert.ToDouble(ocena.Replace(".", ","));
            filmyWiersz.Torrent = torrent;
            filmyWiersz.Opis = opis;
            byte[] imageData = new byte[0];
            if (!(pictureBox1.Image.Size.Height == 600 && pictureBox1.Image.Size.Width == 600))
            {
                imageData = File.ReadAllBytes(pictureBox1.ImageLocation);
            }
            filmyWiersz.Obrazek = imageData;
            int czyIstnieje = 0;
            czyIstnieje = Convert.ToInt16(adapter.SprawdzCzyIstnieje(FilmyTytuly.idOstatniego, wersja));
            if (czyIstnieje == 0)
            {
                dtFilmy.AddFilmyRow(filmyWiersz);
                adapter.Update(dtFilmy);
                idOstatniegoFilmu = dtFilmy.Last().idFSz;
                return true;
            }
            else
            {
                idOstatniegoFilmu = Convert.ToInt16(czyIstnieje);
                return false;
            }
        }

        public void deleteRow(int id)
        {
            adapter.UsunRekord(id);
        }

        public void dajWersje(int id, ListBox lb)
        {
            dtFilmy = adapter.GetDataByIdFilmu(id);
            foreach (DataRow row in dtFilmy)
                lb.Items.Add(row["Wersja"].ToString());
        }

        public List<string> dajTorrenty()
        {
            dtFilmy = adapter.GetData();
            List<string> lista = new List<string>();
            foreach (dsFilmowy.FilmyRow row in dtFilmy)
            {
                if (!(lista.Contains(row.Torrent)))
                    lista.Add(row.Torrent);
            }
            return lista;
        }

        public object dajPole(string wersja, string pole)
        {
            foreach (DataRow row in dtFilmy)
            {
                if (row["Wersja"].ToString().Equals(wersja))
                    return row[pole];
            }
            return "";
        }

        public void pobierzObrazek(PictureBox pictureBox1, string wersja, string pole, string nazwa)
        {
            object obr = dajPole(wersja, pole);
            if (DBNull.Value != obr)
            {
                byte[] fileData = (byte[])dajPole(wersja, pole);
                MemoryStream stream = new MemoryStream(fileData);
                if (stream.Length > 5)
                {
                    Bitmap bmp = new Bitmap(stream);
                    if (nazwa.Contains(" "))
                        nazwa = nazwa.Remove(nazwa.IndexOf(" "));
                    nazwa = nazwa.Replace(":", "");
                    nazwa = nazwa.Replace(";", "");
                    nazwa = nazwa.Replace(",", "");
                    nazwa = nazwa.Replace(".", "");
                    bmp.Save(Application.StartupPath + "\\Obrazy\\" + nazwa);
                    if (fileData.Length >= 1)
                        pictureBox1.SizeMode = PictureBoxSizeMode.StretchImage;
                    pictureBox1.ImageLocation = Application.StartupPath + "\\Obrazy\\" + nazwa;
                }
                stream.Close();
            }
        }
    }
}
